Various electro-optical systems have been developed for reading optical indicia, such as barcodes. A barcode is a coded pattern of graphical indicia comprised of a series of bars and spaces of varying widths. In a barcode, the bars and spaces having differing light reflecting characteristics. Some of the barcodes have a one-dimensional structure in which bars and spaces are spaced apart in one direction to form a row of patterns. Examples of one-dimensional barcodes include Uniform Product Code (UPC), which is typically used in retail store sales. Some of the barcodes have a two-dimensional structure in which multiple rows of bar and space patterns are vertically stacked to form a single barcode. Examples of two-dimensional barcodes include Code 49 and PDF417, which are respectively described in U.S. Pat. No. 4,794,239 and U.S. Pat. No. 5,304,786.
Systems that use one or more solid-state imagers for reading and decoding barcodes are typically referred to as imaging-based barcode readers, imaging scanners, or imaging readers. A solid-state imager generally includes a plurality of photosensitive elements or pixels aligned in one or more arrays. Examples of solid-state imagers include charged coupled devices (CCD) or complementary metal oxide semiconductor (CMOS) imaging chips.
In some implementations, some of the basic components of an imaging scanner are packed together to form a barcode scan-engine. The barcode scan-engines can be installed into other devices and apparatus to form fully-functional imaging scanners in the form of workstations or hand-held devices. Barcode scan engines can also be integrated into mobile phones, mobile computer and other portable devices to add barcode reading functions to these devices. These mobile devices may require pico-size barcode scan engines that can also be cost effectively manufactured. In these barcode scan engines, even through some of the basic components of an imaging scanner have to be packed into some limited space, it is still desirable to have an aiming system in a barcode reading engine that can generate bright aiming patterns.